<?php
/**
 * 活动信息
 * 奖品管理记录活动信息，用来计算中奖结果
 */

namespace App\Contracts\Repositories;

interface ActivityInfoRepository
{
    /**
     * 新建活动信息
     * @param array $activity
     * @return mixed
     */
    public function create($activity);

    /**
     * 编辑活动信息
     * @param array $activity
     * @param array $conditions
     * @return mixed
     */
    public function modify($activity, $conditions);

    /**
     * 更新互动奖品关联
     * @param int $activityId
     * @param int $prizeId
     * @return mixed
     */
    public function updateActivityPrize($activityId, $prizeId);

    /**
     * 删除活动信息
     * @param array $conditions
     * @param bool $softDeletion 是否软删除，true是，false否
     * @return mixed
     */
    public function delete($conditions, $softDeletion);

    /**
     * 通过活动ID查找活动信息
     * @param int $activityId
     * @return mixed
     */
    public function findById($activityId);

    /**
     * 按条件查找活动信息
     * @param array $conditions
     * @param array $withs
     * @return mixed
     */
    public function findByConditions($conditions, $withs);

    /**
     * 更新活动中奖纪录
     * @param int $activityId
     * @param array $activityRecords
     * @return mixed
     */
    public function updateActivityRecords($activityId, $activityRecords);

    /**
     * 获取奖品信息
     * @param int $prizeId
     * @return mixed
     */
    public function getPrizeInfo($prizeId);
}
